package pl.koziolekweb.szkola.NIXMLNet;

// NI-XMLNet/OdczytKlient.java
 
import java.awt.event.ActionListener;
import java.beans.XMLDecoder;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.HashMap;
import java.util.Iterator;

import javax.swing.JButton;
import javax.swing.JFrame;

public class OdczytKlient {
    public static void main(String[] args) {

        MyPanel myPanel = null;
        Socket      soc = null;
        XMLDecoder  dec = null;
        try {
        // Laczymy sie z serwera, pobieramy obiekt MyPanel
        // (razem z zawartym w nim przyciskiem, panelem
        // i obiektem HashMap) i rozlaczamy sie
            soc = new Socket("localhost",54321);
            dec = new XMLDecoder(
                      new BufferedInputStream(
                          soc.getInputStream()));
            myPanel = (MyPanel)dec.readObject();
            dec.close();
            System.err.println("Obiekt odczytany");
        } catch(IOException e) {
            System.err.println("Co\u015b niedobrze");
            System.exit(1);
        }
        finally {
            try { soc.close();
            }catch(IOException ignore) { }
        }

        // wyswietlamy dla sprawdzenia, ze
        // dostalismy to samo co przy zapisie
        JFrame fr = new JFrame("Dictionary");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fr.setContentPane(myPanel);
        fr.pack();
        fr.setVisible(true);

        // sprawdzamy, ze wszystko sie odtworzylo
        JButton but = myPanel.getBut();
        ActionListener[] actions =
                but.getActionListeners();
        System.out.println("S\u0142uchacz przycisku klasy "
                + actions[0].getClass().getName());
        System.out.println("Napis na przycisku: "
                + but.getText());

        System.out.println("Kolor panelu: " +
                myPanel.getCen().getBackground());

        HashMap<?,?> m = myPanel.getMap();
        System.out.println("W s\u0142owniku by\u0142y:");
        for (Iterator<?> i = m.keySet().iterator();
                                    i.hasNext();) {
            String key = (String)i.next();
            String val = (String)m.get(key);
            System.out.println("  " + key + " --> " + val);
        }
    }
}
